/* 
 * File:   PreProcess.h
 * Author: song
 *
 * Created on 2010年10月28日, 下午12:26
 */

#ifndef _PREPROCESS_H
#define	_PREPROCESS_H
#include "Data.h"

class PreProcess {
public:
    //cvRunningAvg中背景图像的更新速率
    int alpha;

    PreProcess(Camera *camera);
    PreProcess(const PreProcess& orig);

    //输入原始图像，进行图片的预处理功能
    void Process(IplImage *image);

    virtual ~PreProcess();

private:
    Camera *cam;
    //图像灰度化
    void ToGray(IplImage *image, IplImage *des);

    //滤波
    void ToSmooth(CvMat *src, CvMat *des, int type);

    //图像二值化
    void ToBinary(CvMat *frame, CvMat *bk, CvMat *fr);

    //形态学滤波
    void ToOpen(IplImage *image, int num);
    void ToClose(IplImage *image, int num);

    //背景更新
    void UpdateBK();
    
};

#endif	/* _PREPROCESS_H */

